#ifndef __LYNX_SOUND_SOURCE_HPP_INCLUDED__
#define __LYNX_SOUND_SOURCE_HPP_INCLUDED__

#include "LynxConfig.hpp"

namespace Lynx
{
namespace Audio
{

struct AudioFormat
{
    uint32_t mChannelCount;
    uint32_t mSamplesPerSecond;
};

class SoundSource : public virtual Myth::ReferenceCounter
{
public:
    virtual const std::string &get_name(void) const = 0;

    virtual void set_name(const std::string &new_name) = 0;

    virtual AudioFormat get_audio_format(void) const = 0;

    virtual bool is_streaming(void) const = 0;

    virtual bool is_random_access(void) const = 0;
};

} // namespace Audio
} // namespace Lynx

#endif // __LYNX_SOUND_SOURCE_HPP_INCLUDED__

